﻿using Admin.ApplicationLib.Entities;
using Admin.CommonLib.Models.User;
using Ardalis.Specification;
using Swimj.Core.DependencyInjection;

namespace Admin.ApplicationLib.Repositories
{
    public interface IUserRepository : IRepositoryBase<UserEntity>, IScopedDependency
    {
        Task<Tuple<IList<UserEntity>, int>> QueryByPageRoleAsync(Guid id, UserSearchRequestDto model);

        Task<IList<UserEntity>> QueryByIdsAsync(List<Guid> model);
    
        Task<IList<UserEntity>> QueryByRoleAsync(Guid roleId);

        Task<IList<UserEntity>> QueryByUserNamesAsync(List<string> model);
    }
}